import { contextBridge, ipcRenderer } from 'electron';
import { electronAPI } from '@electron-toolkit/preload';
// Custom APIs for renderer
type MainApi = {
  mainSendToRender: (value) => void;
  drag: (value) => void;
};
const api = {
  mainSendToRender: (callback) => ipcRenderer.on('update-counter', (_event, value) => callback(value)),
  drag: (opt: { x: number; y: number }) => {
    return ipcRenderer.invoke('drag', opt);
  },
} as MainApi;

// Use `contextBridge` APIs to expose Electron APIs to
// renderer only if context isolation is enabled, otherwise
// just add to the DOM global.
if (process.contextIsolated) {
  try {
    contextBridge.exposeInMainWorld('electron', electronAPI);
    contextBridge.exposeInMainWorld('api', api);
  } catch (error) {
    console.error(error);
  }
} else {
  // @ts-ignore (define in dts)
  window.electron = electronAPI;
  // @ts-ignore (define in dts)
  window.api = api;
}
